#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author:zhengxin
@file: 017_ball_height_calculation.py
@time: 2024/12/16  16:59
# @describe:
"""

"""
一球从100米高度自由落下，每次落地后反跳回原高度的一半；
    再落下，求它在第10次落地时，共经过多少米？
    第10次反弹多高？
"""
def ball_height_calculation():
    total = 0
    m = 100     # 第一次落地，经过了一百米
    total += m
    for i in range(10-1):   # 之后9次弹起到落地
        m = m/2     # 弹起的高度
        total += 2*m    # 弹起然后重新落地，一共经过的距离
    print(f"第10次落地时共经过的距离为：{total}米")
    print(f"第10次反弹的高度为：{m/2}米")


ball_height_calculation()



def ball_height_calculation1():
    # 初始高度
    initial_height = 100.0
    # 总距离
    total_distance = 0.0
    # 当前高度
    current_height = initial_height

    # 循环计算每次的下落和反弹
    for i in range(1, 11):
        # 下落距离加到总距离中
        total_distance += current_height
        # 计算反弹高度（第10次落地后不再反弹，所以只计算到第9次）
        if i < 10:
            rebound_height = current_height / 2
            # 反弹距离也加到总距离中
            total_distance += rebound_height
            # 更新当前高度为反弹高度，为下一次下落做准备
            current_height = rebound_height

    # 第10次反弹的高度（即第9次反弹后高度的一半）
    final_rebound_height = current_height / 2

    # 输出结果
    print(f"第10次落地时共经过的距离为：{total_distance}米")
    print(f"第10次反弹的高度为：{final_rebound_height}米")

ball_height_calculation1()